package com.tqz.rc.common.constant;

import java.util.concurrent.TimeUnit;

/**
 * <p>默认值的常量类。
 *
 * @author tianqingzhao
 * @since 2021/8/31 11:56
 */
public class DefaultValueConstant {

    /**
     * 默认的命名空间。
     */
    public static final String DEFAULT_NAMESPACE_ID = "public";

    /**
     * 默认的分组名称。
     */
    public static final String DEFAULT_GROUP = "DEFAULT_GROUP";

    /**
     * 默认的集群名称。
     */
    public static final String DEFAULT_CLUSTER_NAME = "DEFAULT_CLUSTER_NAME";

    /**
     * 服务端处理实例心跳超时时间，默认15秒。
     */
    public static final long INSTANCE_HEART_BEAT_TIME_OUT = TimeUnit.SECONDS.toMillis(15);

    /**
     * 服务端处理实例ip删除的超时时间，默认30秒。
     */
    public static final long IP_DELETE_TIME_OUT = TimeUnit.SECONDS.toMillis(30);

    /**
     * 服务端自行处理客户端心跳检查任务的延时执行时间。
     */
    public static final long SERVER_PROCESS_CLIENT_BEAT_CHECK_TASKINITIAL_DELAY_TIME = TimeUnit.SECONDS.toMillis(5);

    /**
     * 服务端自行处理客户端心跳检查任务的间隔时间。
     */
    public static final long SERVER_PROCESS_CLIENT_BEAT_CHECK_TASK_DELAY_TIME = TimeUnit.SECONDS.toMillis(5);

    /**
     * 客户端维持心跳续约的请求间隔时间。
     */
    public static final long DEFAULT_HEART_BEAT_INTERVAL = TimeUnit.SECONDS.toMillis(5);

    /**
     * 服务端接收客户端心跳续约请求的任务处理的延时时间。
     */
    public static final long CLIENT_BEAT_PROCESSOR_DELAY_TIME = TimeUnit.SECONDS.toMillis(0);

    /**
     * The Nanoseconds for receive UDP ack time out.
     */
    public static final long ACK_TIMEOUT_NANOS = TimeUnit.SECONDS.toNanos(10L);

    /**
     * UDP最大重试次数
     */
    public static final int UDP_MAX_RETRY_TIMES = 1;
}
